﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.Data.Entity;
using McvParis_vert.Application.Models;

namespace McvParis_vert.Application
{
    public class DatabaseInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<AppContext>
    {
        protected override void Seed(AppContext context)
        {
            var utilisateurs = new List<Utilisateur>
            {
                new Utilisateur{Nom="Trari", Prenom="Sarra", Pseudo="Mandoline", Mot_De_Passe="password", Adresse="78 rue de la Retraite", Code_Postal="49800", Ville="Valence sur Yvette", Derniere_Connexion=DateTime.Now, Date_Inscription=DateTime.Now, Date_De_Naissance=DateTime.Parse("1988-01-03")}
            };

            utilisateurs.ForEach(u => context.Utilisateurs.Add(u));
            context.SaveChanges();

            var thematiques = new List<Thematique>
            {
                new Thematique{Libelle="Pique-Nique"},
                new Thematique{Libelle="Promenade"},
                new Thematique{Libelle="Nature"},
                new Thematique{Libelle="Découverte"},
                new Thematique{Libelle="Randonnée"}
            };

            thematiques.ForEach(s => context.Thematiques.Add(s));
            context.SaveChanges();

            var criteres = new List<Critere>
            {
                new Critere{Libelle="Vélo"},
                new Critere{Libelle="Pédestre"},
                new Critere{Libelle="Roller"}
            };

            thematiques.ForEach(s => context.Thematiques.Add(s));
            context.SaveChanges();

            var itineraires = new List<Itineraire>
            {
                new Itineraire{Thematique_Id=2, Critere_Id=2, Titre="Paris au vert", Adresse="107 Port de Javel Bas", Code_Postal="75015", Ville="Paris", Latitude_Depart="48.50508", Longitude_Depart="2.16407", Latitude_Arrivee="48.50280", Longitude_Arrivee="2.16824" },
                new Itineraire{Thematique_Id=4, Critere_Id=1},
                new Itineraire{Thematique_Id=2, Critere_Id=1, Titre="Paris atypique", Adresse="16 Avenue Raphaël", Code_Postal="75016", Ville="Paris", Latitude_Depart="48.51690", Longitude_Depart="2.16071", Latitude_Arrivee="48.51411", Longitude_Arrivee="2.16007" },
                new Itineraire{Thematique_Id=5, Critere_Id=2},
                new Itineraire{Critere_Id=3},
                new Itineraire{Thematique_Id=1, Critere_Id=2, Titre="Zen", Adresse="2 Rue Gazan", Code_Postal="75014", Ville="Paris", Latitude_Depart="48.49406", Longitude_Depart="2.20392", Latitude_Arrivee="48.49406", Longitude_Arrivee="2.20392" }
            };

            itineraires.ForEach(i => context.Itineraires.Add(i));
            context.SaveChanges();
        }
    }
}